/*
2017/2/16 方程的自然数解
方程x1+x2+…+xn=m的自然数解(xi>=0)的数量。设yi=xi+1，则方程编程y1+y2+..+yn=m+n，利用昨天的公式可以得到C(m+n-1,n-1)。
数据输入只有一行，分别表示m和n。其中2<=m<=10^9, 2<=n<=100。当m很大时，解的数量太多，就输出前1000个解。
数据输出是依次按照字典序输出解。
数据输入
5 3
数据输出
0 0 5
0 1 4
0 2 3
0 3 2
0 4 1
0 5 0
1 0 4
1 1 3
1 2 2
1 3 1
1 4 0
2 0 3
2 1 2
2 2 1
2 3 0
3 0 2
3 1 1
3 2 0
4 0 1
4 1 0
5 0 0
*/

#include <iostream>
#include <list>

using namespace std;

int coutX(int m,int n);

int count = 0;
list<int> li;

int main(void) {

  int m,n;
  cin >> m >> n;

  coutX(m,n);

  return 0;
}

int coutX(int m,int n)
{
   if(n==1)
   {
     for(list<int>::iterator l = li.begin();l!=li.end();l++)
     {
       std::cout << *l <<" " ;
     }
     cout << m << endl;
     count++;
     if(count >= 1000) return -1;
     return 0;
   }
   else
   {
     for (int i = 0; i <= m ; i++) {
       li.push_back(i);
       int re = coutX(m-i,n-1);
       li.pop_back();
      if(re == -1) return -1;

     }

   }
   return 0;
}
